9x9 Tarek 1.txt

Order 3: digits 9; houses 27, cells 81.

Grid.grid1: initial copying

pending={a1, a6, a7, b2, b5, c3, c4, c9, d3, d9, e2, e8, f1, f7, g1, g6, g7, h5, h8, i3, i4, i9}

deduce.grid1: naked-singles

deduce.grid1: hidden-singles

deduce.grid1: naked-pairs

two's heap=g9 {1|4}, c1 {5|9}.

grid1
1 2 3 4 5 6 7 8 9
a 6
 23
4  
7  
  3
45 
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b
 2 
 5 
7 9
8
   
45 
7 9
   
456
  9
3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c
   
 5 
  9
  3
4  
  9
1 7
   
 56
 89
   
456
 8 
   
45 
 8 
  3
456
   
2
d
1  
   
 89
1 3
  6
  9
2
1 3
456
 89
1  
 56
 89
  3
456
 8 
   
45 
 8 
   
456
  9
7
e
   
   
789
5
  3
  6
7 9
  3
4 6
 89
 2 
  6
789
 23
4 6
78 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
12 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
 5 
7 9
12 
  6
7 9
   
 56
7 9
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8
1 3
   
  9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
  3
  6
7  
1  
4  
7  
  3
4  
7 9
5

backtrack.grid1 → grid2: c1 guess 5 ∈ {5|9}

pending={c1}

deduce.grid2: naked-singles

deduce.grid2: hidden-singles

deduce.grid2: naked-pairs

two's heap=g9 {1|4}, c7 {4|8}.

grid2
1 2 3 4 5 6 7 8 9
a 6
 23
4  
7  
  3
4  
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b
 2 
   
7 9
8
   
4  
7 9
   
456
  9
3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 5
  3
4  
  9
1 7
   
  6
 89
   
4 6
 8 
   
4  
 8 
  3
4 6
   
2
d
1  
   
 89
1 3
  6
  9
2
1 3
456
 89
1  
 56
 89
  3
456
 8 
   
45 
 8 
   
456
  9
7
e
   
   
789
5
  3
  6
7 9
  3
4 6
 89
 2 
  6
789
 23
4 6
78 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
12 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7 9
12 
  6
7 9
   
 56
7 9
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8
1 3
   
  9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
  3
  6
7  
1  
4  
7  
  3
4  
7 9
5

backtrack.grid2 → grid3: c7 guess 4 ∈ {4|8}

pending={c7}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3.box3. a9 is 8 by hidden-single.

pending={a9}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3.col9. h9 is 3 by hidden-single.

pending={h9}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3.rowi. i6 is 3 by hidden-single.

pending={i6}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3.box9. i8 is 9 by hidden-single.

pending={i8}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3.rowi. i2 is 4 by hidden-single.

pending={i2}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3.rowi. i5 is 6 by hidden-single.

pending={i5}

deduce.grid3: naked-singles

deduce.grid3: hidden-singles

deduce.grid3: naked-pairs

two's heap=g9 {1|4}, a4 {4|5}, h4 {1|5}, i7 {1|7}, g3 {5|7}, a5 {2|5}, c8 {3|6}, e7 {2|8}, d7 {5|8}, c5 {8|9}, f9 {6|9}, c6 {6|8}, b9 {1|6}, h6 {5|7}, i1 {1|7}, c2 {3|9}.

grid3
1 2 3 4 5 6 7 8 9
a 6
 23
   
7  
  3
4  
7  
   
45 
   
 2 
 5 
   
1 9
  3
 5 
7  
8
b
 2 
   
7 9
8
   
4  
7 9
   
456
  9
3
 2 
456
   
1  
 5 
7  
   
 56
7  
1  
  6
   
c 5
  3
   
  9
1 7
   
   
 89
   
  6
 8 
4
  3
  6
   
2
d
1  
   
 89
1 3
  6
  9
2
1 3
456
 89
1  
 5 
 89
   
456
 8 
   
 5 
 8 
   
456
   
7
e
   
   
789
5
  3
  6
7 9
  3
4 6
 89
 2 
   
789
 2 
4 6
78 
 2 
   
 8 
1
   
4 6
  9
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 5 
789
 2 
 56
78 
3
 2 
 56
   
   
  6
  9
g 3
12 
   
7  
   
 5 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7 9
12 
  6
7 9
   
 56
7 9
1  
 5 
   
4
   
 5 
7  
12 
   
7  
8 3
i
1  
   
7  
4 8 2 6 3
1  
   
7  
9 5

backtrack.grid3 → grid4: a4 guess 4 ∈ {4|5}

pending={a4}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4.rowb. b3 is 4 by hidden-single.

pending={b3}

deduce.grid4: naked-singles

deduce.grid4: hidden-singles

deduce.grid4: naked-pairs

two's heap=g9 {1|4}, i7 {1|7}, h4 {1|5}, a3 {3|7}, g3 {5|7}, a5 {2|5}, c8 {3|6}, e7 {2|8}, d7 {5|8}, c5 {8|9}, f9 {6|9}, c6 {6|8}, b9 {1|6}, h6 {5|7}, i1 {1|7}, c2 {3|9}.

grid4
1 2 3 4 5 6 7 8 9
a 6
 23
   
7  
  3
   
7  
4
 2 
 5 
   
1 9
  3
 5 
7  
8
b
 2 
   
7 9
8 4
   
 56
  9
3
 2 
 56
   
1  
 5 
7  
   
 56
7  
1  
  6
   
c 5
  3
   
  9
1 7
   
   
 89
   
  6
 8 
4
  3
  6
   
2
d
1  
   
 89
1 3
  6
  9
2
1 3
 56
 89
1  
 5 
 89
   
456
 8 
   
 5 
 8 
   
456
   
7
e
   
   
789
5
  3
  6
7 9
  3
  6
 89
 2 
   
789
 2 
4 6
78 
 2 
   
 8 
1
   
4 6
  9
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 5 
789
 2 
 56
78 
3
 2 
 56
   
   
  6
  9
g 3
12 
   
7  
   
 5 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7 9
12 
  6
7 9
   
 56
7 9
1  
 5 
   
4
   
 5 
7  
12 
   
7  
8 3
i
1  
   
7  
4 8 2 6 3
1  
   
7  
9 5

backtrack.grid4 → grid5: a3 guess 3 ∈ {3|7}

pending={a3}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowb. b4 is 9 by hidden-single.

pending={b4}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowe. e4 is 3 by hidden-single.

pending={e4}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowd. d2 is 3 by hidden-single.

pending={d2}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowg. g4 is 8 by hidden-single.

pending={g4}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5.rowf. f6 is 8 by hidden-single.

pending={f6}

deduce.grid5: naked-singles

deduce.grid5: hidden-singles

deduce.grid5: naked-pairs

two's heap=g9 {1|4}, b6 {2|5}, h4 {1|5}, i7 {1|7}, a2 {2|7}, a5 {2|5}, b9 {1|6}, b1 {2|7}, e7 {2|8}, f9 {6|9}, g3 {5|7}, a8 {5|7}, d6 {4|5}, h6 {5|7}, i1 {1|7}, d7 {5|8}.

grid5
1 2 3 4 5 6 7 8 9
a 6
 2 
   
7  
3 4
 2 
 5 
   
1 9
   
 5 
7  
8
b
 2 
   
7  
8 4 9 3
 2 
 5 
   
1  
 5 
7  
   
 56
7  
1  
  6
   
c 5 9 1 7 8 6 4 3 2
d
1  
   
 89
3 2
1  
 56
   
1  
 5 
  9
   
45 
   
   
 5 
 8 
   
456
   
7
e
   
   
789
5
   
  6
7 9
3
 2 
   
7 9
 2 
4  
7  
 2 
   
 8 
1
   
4 6
  9
f 4
1  
  6
7  
   
  6
7 9
1  
 56
   
12 
 5 
7 9
8 3
 2 
 56
   
   
  6
  9
g 3
12 
   
7  
   
 5 
7  
8
1  
 5 
7  
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7 9
12 
  6
7  
   
 56
7 9
1  
 5 
   
4
   
 5 
7  
12 
   
7  
8 3
i
1  
   
7  
4 8 2 6 3
1  
   
7  
9 5

backtrack.grid5 → grid6: a2 guess 2 ∈ {2|7}

pending={a2}

deduce.grid6: naked-singles

grid6 didn't work: naked-singles ran out of candidates.

…backtrack.grid5 again

backtrack.grid5 → grid7: a2 guess 7 ∈ {2|7}

pending={a2}

deduce.grid7: naked-singles

grid7 didn't work: naked-singles ran out of candidates.

…backtrack.grid5 again

grid5 didn't work: exhaustive search revealed no solution.

…backtrack.grid4 again

backtrack.grid4 → grid8: a3 guess 7 ∈ {3|7}

pending={a3}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8.col3. e3 is 3 by hidden-single.

pending={e3}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8.rowd. d4 is 3 by hidden-single.

pending={d4}

deduce.grid8: naked-singles

deduce.grid8: hidden-singles

deduce.grid8: naked-pairs

two's heap=a2 {2|3}, h4 {1|5}, g9 {1|4}, a5 {2|5}, b9 {1|6}, c2 {3|9}, a8 {3|5}, c8 {3|6}, i1 {1|7}, i7 {1|7}, e7 {2|8}, f3 {6|9}, f9 {6|9}, c5 {8|9}, g4 {1|8}, h3 {6|9}, b1 {2|9}, c6 {6|8}, h6 {5|7}, d7 {5|8}.

Naked-pair {6|9} in cells {f3, f9, h3} contained within {rowf, col3}, updating cells {f2, f4, f5, f6, f8}:

grid8
1 2 3 4 5 6 7 8 9
a 6
 23
   
   
7 4
 2 
 5 
   
1 9
  3
 5 
   
8
b
 2 
   
  9
8 4
   
 56
  9
3
 2 
 56
   
1  
 5 
7  
   
 56
7  
1  
  6
   
c 5
  3
   
  9
1 7
   
   
 89
   
  6
 8 
4
  3
  6
   
2
d
1  
   
 89
1  
  6
  9
2 3
1  
 5 
 89
   
456
 8 
   
 5 
 8 
   
456
   
7
e
   
   
789
5 3
   
  6
 89
 2 
   
789
 2 
4 6
78 
 2 
   
 8 
1
   
4 6
  9
f 4
1  
   
7  
   
  6
  9
1  
 5 
 8 
12 
 5 
78 
 2 
 5 
78 
3
 2 
 5 
   
   
  6
  9
g 3
12 
   
7  
5
1  
   
 8 
1  
   
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7 9
12 
  6
7 9
   
  6
  9
1  
 5 
   
4
   
 5 
7  
12 
   
7  
8 3
i
1  
   
7  
4 8 2 6 3
1  
   
7  
9 5

backtrack.grid8 → grid9: a2 guess 2 ∈ {2|3}

pending={a2}

deduce.grid9: naked-singles

deduce.grid9: hidden-singles

deduce.grid9.rowd. d2 is 9 by hidden-single.

pending={d2}

deduce.grid9: naked-singles

deduce.grid9: hidden-singles

deduce.grid9.rowd. d6 is 6 by hidden-single.

pending={d6}

deduce.grid9: naked-singles

deduce.grid9: hidden-singles

deduce.grid9.rowd. d8 is 4 by hidden-single.

pending={d8}

deduce.grid9: naked-singles

deduce.grid9: hidden-singles

deduce.grid9.rowd. d7 is 5 by hidden-single.

pending={d7}

deduce.grid9: naked-singles

grid9 didn't work: naked-singles ran out of candidates.

…backtrack.grid8 again

backtrack.grid8 → grid10: a2 guess 3 ∈ {2|3}

pending={a2}

deduce.grid10: naked-singles

grid10 didn't work: naked-singles ran out of candidates.

…backtrack.grid8 again

grid8 didn't work: exhaustive search revealed no solution.

…backtrack.grid4 again

grid4 didn't work: exhaustive search revealed no solution.

…backtrack.grid3 again

backtrack.grid3 → grid11: a4 guess 5 ∈ {4|5}

pending={a4}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowa. a3 is 4 by hidden-single.

pending={a3}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowb. b1 is 2 by hidden-single.

pending={b1}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.col3. e3 is 3 by hidden-single.

pending={e3}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11.rowd. d4 is 3 by hidden-single.

pending={d4}

deduce.grid11: naked-singles

deduce.grid11: hidden-singles

deduce.grid11: naked-pairs

two's heap=g9 {1|4}, b9 {1|6}, g3 {5|7}, c8 {3|6}, i1 {1|7}, f4 {6|9}, g5 {5|7}, b6 {4|6}, h7 {2|7}, i7 {1|7}, e7 {2|8}, b3 {7|9}, f9 {6|9}, c5 {8|9}, c2 {3|9}, c6 {6|8}, h1 {7|9}, h6 {5|7}, a8 {3|7}, d7 {5|8}, a2 {3|7}.

Naked-pair {5|7} in cells {g3, g5, h6} contained within {rowg, box8}, updating cells {g2, g8, g9}:

Naked-pair {6|9} in cells {f4, f9} contained within {rowf}, updating cells {f2, f3, f5, f6, f8}:

pending={f3}

deduce.grid11: naked-singles

grid11 didn't work: naked-singles ran out of candidates.

…backtrack.grid3 again

grid3 didn't work: exhaustive search revealed no solution.

…backtrack.grid2 again

backtrack.grid2 → grid12: c7 guess 8 ∈ {4|8}

pending={c7}

deduce.grid12: naked-singles

deduce.grid12: hidden-singles

deduce.grid12: naked-pairs

two's heap=g9 {1|4}, a9 {3|4}, e7 {2|4}, c5 {6|9}, d7 {4|5}, c6 {4|6}.

grid12
1 2 3 4 5 6 7 8 9
a 6
 23
4  
7  
  3
4  
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
   
b
 2 
   
7 9
8
   
4  
7 9
   
456
  9
3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 5
  3
4  
  9
1 7
   
  6
  9
   
4 6
   
8
  3
4 6
   
2
d
1  
   
 89
1 3
  6
  9
2
1 3
456
 89
1  
 56
 89
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5
  3
  6
7 9
  3
4 6
 89
 2 
  6
789
 23
4 6
78 
 2 
4  
   
1
   
4 6
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
12 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7 9
12 
  6
7 9
   
 56
7 9
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8
1 3
   
  9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
  3
  6
7  
1  
4  
7  
  3
4  
7 9
5

backtrack.grid12 → grid13: a9 guess 3 ∈ {3|4}

pending={a9}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.rowc. c2 is 3 by hidden-single.

pending={c2}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.rowc. c5 is 9 by hidden-single.

pending={c5}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.col3. e3 is 3 by hidden-single.

pending={e3}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.col8. i8 is 3 by hidden-single.

pending={i8}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13.box9. h9 is 9 by hidden-single.

pending={h9}

deduce.grid13: naked-singles

deduce.grid13: hidden-singles

deduce.grid13: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, e7 {2|4}, a3 {4|7}, c6 {4|6}, f9 {6|8}, c8 {4|6}, i6 {6|7}.

grid13
1 2 3 4 5 6 7 8 9
a 6
 2 
4  
7  
   
4  
7  
   
45 
 8 
 2 
 5 
 8 
1 9
   
45 
7  
3
b
 2 
   
7 9
8
   
4  
7 9
   
456
   
3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
456
 89
1  
 56
 8 
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5 3
   
4 6
 89
 2 
  6
78 
 2 
4 6
78 
 2 
4  
   
1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 56
78 
 2 
 56
78 
3
 2 
 56
  9
   
  6
 8 
g 3
12 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7  
12 
  6
7  
   
 56
7  
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8 9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid13 → grid14: a3 guess 4 ∈ {4|7}

pending={a3}

deduce.grid14: naked-singles

deduce.grid14: hidden-singles

deduce.grid14: naked-pairs

two's heap=g9 {1|4}, e7 {2|4}, c6 {4|6}, a2 {2|7}, d7 {4|5}, a8 {5|7}, c8 {4|6}, b3 {7|9}, f9 {6|8}, a4 {5|8}, g3 {5|7}, i6 {6|7}.

grid14
1 2 3 4 5 6 7 8 9
a 6
 2 
   
7  
4
   
 5 
 8 
 2 
 5 
 8 
1 9
   
 5 
7  
3
b
 2 
   
7 9
8
   
   
7 9
   
456
   
3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
456
 89
1  
 56
 8 
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5 3
   
4 6
 89
 2 
  6
78 
 2 
4 6
78 
 2 
4  
   
1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
12 
 56
78 
 2 
 56
78 
3
 2 
 56
  9
   
  6
 8 
g 3
12 
4  
7  
   
 5 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7  
12 
  6
7  
   
 56
7  
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8 9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid14 → grid15: a2 guess 2 ∈ {2|7}

pending={a2}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowa. a8 is 7 by hidden-single.

pending={a8}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowb. b6 is 2 by hidden-single.

pending={b6}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowg. g8 is 2 by hidden-single.

pending={g8}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowf. f5 is 2 by hidden-single.

pending={f5}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowe. e7 is 2 by hidden-single.

pending={e7}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15.rowh. h1 is 2 by hidden-single.

pending={h1}

deduce.grid15: naked-singles

deduce.grid15: hidden-singles

deduce.grid15: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, c6 {4|6}, a4 {5|8}, h7 {1|7}, i6 {6|7}, c8 {4|6}, b3 {7|9}, f9 {6|8}, a5 {5|8}, g3 {5|7}, b1 {7|9}.

Naked-pair {5|8} in cells {a4, a5} contained within {rowa, box2}, updating cells {b4, c6}:

Naked-pair {7|9} in cells {b1, b3} contained within {rowb, box1}, updating cells {b4, b7, b8, b9}:

grid15
1 2 3 4 5 6 7 8 9
a 6 2 4
   
 5 
 8 
   
 5 
 8 
1 9 7 3
b
   
   
7 9
8
   
   
7 9
   
4 6
   
3 2
1  
45 
   
   
456
   
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
456
 89
1  
 56
 8 
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5 3
   
4 6
 89
   
  6
78 
   
4 6
78 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 89
2
   
 56
78 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
1  
 5 
 8 
1  
 5 
78 
9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
 56
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid15 → grid16: a4 guess 5 ∈ {5|8}

pending={a4}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

deduce.grid16.rowg. g4 is 8 by hidden-single.

pending={g4}

deduce.grid16: naked-singles

deduce.grid16: hidden-singles

deduce.grid16: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, b4 {4|6}, g3 {5|7}, c6 {4|6}, i6 {6|7}, e5 {6|7}, b3 {7|9}, f9 {6|8}, c8 {4|6}, h7 {1|7}, b1 {7|9}.

Naked-pair {7|9} in cells {b1, b3} contained within {rowb, box1}, updating cells {b4, b7, b8, b9}:

grid16
1 2 3 4 5 6 7 8 9
a 6 2 4 5 8 1 9 7 3
b
   
   
7 9
8
   
   
7 9
   
4 6
   
3 2
1  
45 
   
   
456
   
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
4 6
  9
1  
 56
   
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5 3
   
4 6
  9
   
  6
7  
   
4 6
78 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7 9
1  
  6
  9
2
   
 56
78 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
8
1  
 5 
7  
9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
  6
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid16 → grid17: b1 guess 7 ∈ {7|9}

pending={b1}

deduce.grid17: naked-singles

deduce.grid17: hidden-singles

deduce.grid17: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, c8 {4|6}, c6 {4|6}, b4 {4|6}, e5 {6|7}, f3 {6|7}, f9 {6|8}, g3 {5|7}, e1 {8|9}, h7 {1|7}, i1 {1|9}, i6 {6|7}.

grid17
1 2 3 4 5 6 7 8 9
a 6 2 4 5 8 1 9 7 3
b 7 8 9
   
4 6
   
3 2
1  
45 
   
   
456
   
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
4 6
  9
1  
 56
   
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
 89
5 3
   
4 6
  9
   
  6
7  
   
4 6
78 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7  
1  
  6
  9
2
   
 56
78 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
8
1  
 5 
7  
9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
  6
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
  9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid17 → grid18: b4 guess 4 ∈ {4|6}

pending={b4}

deduce.grid18: naked-singles

deduce.grid18: hidden-singles

deduce.grid18.rowe. e5 is 7 by hidden-single.

pending={e5}

deduce.grid18: naked-singles

deduce.grid18: hidden-singles

deduce.grid18.col7. h7 is 7 by hidden-single.

pending={h7}

deduce.grid18: naked-singles

deduce.grid18: hidden-singles

deduce.grid18: naked-pairs

two's heap=g9 {1|4}, i7 {1|4}, b7 {1|5}, h6 {3|5}, g3 {5|7}, g5 {1|5}, h2 {1|6}, b8 {5|6}, d7 {4|5}, e1 {8|9}, f9 {6|8}, e4 {6|9}, b9 {1|6}, e6 {4|8}, h3 {5|6}, f3 {6|7}, i1 {1|9}, f6 {5|8}, i5 {1|6}.

grid18
1 2 3 4 5 6 7 8 9
a 6 2 4 5 8 1 9 7 3
b 7 8 9 4 3 2
1  
 5 
   
   
 56
   
1  
  6
   
c 5 3 1 7 9 6 8 4 2
d
1  
   
 89
1  
  6
  9
2
1 3
  6
  9
1  
 56
   
  3
45 
 8 
   
45 
   
   
 56
  9
7
e
   
   
 89
5 3
   
  6
  9
7
   
4  
 8 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7  
1  
  6
  9
2
   
 5 
 8 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
8
1  
 5 
   
9 6 2
1  
4  
   
h 2
1  
  6
   
   
 56
   
1 3
  6
   
4
  3
 5 
   
7 8 9
i
1  
   
  9
1  
4 6
  9
8 2
1  
  6
   
7
1  
4  
   
3 5

backtrack.grid18 → grid19: b7 guess 1 ∈ {1|5}

pending={b7}

deduce.grid19: naked-singles

grid19 didn't work: naked-singles ran out of candidates.

…backtrack.grid18 again

backtrack.grid18 → grid20: b7 guess 5 ∈ {1|5}

pending={b7}

deduce.grid20: naked-singles

grid20 didn't work: naked-singles ran out of candidates.

…backtrack.grid18 again

grid18 didn't work: exhaustive search revealed no solution.

…backtrack.grid17 again

backtrack.grid17 → grid21: b4 guess 6 ∈ {4|6}

pending={b4}

deduce.grid21: naked-singles

deduce.grid21: hidden-singles

deduce.grid21: naked-pairs

two's heap=h4 {1|3}, b8 {4|5}, b9 {1|4}, i6 {6|7}, g3 {5|7}, g9 {1|4}, h7 {1|7}, f4 {1|9}, f8 {5|9}, e4 {4|9}, f9 {6|8}, e5 {6|7}, d7 {4|5}, f3 {6|7}, i1 {1|9}, e1 {8|9}.

Naked-pair {1|4} in cells {b9, g9} contained within {col9}, updating cells {e9, f9}:

grid21
1 2 3 4 5 6 7 8 9
a 6 2 4 5 8 1 9 7 3
b 7 8 9 6 3 2
1  
45 
   
   
45 
   
1  
4  
   
c 5 3 1 7 9 4 8 6 2
d
1  
   
 89
1  
  6
  9
2
1 3
4  
  9
1  
 56
   
  3
 56
 8 
   
45 
   
   
45 
  9
7
e
   
   
 89
5 3
   
4  
  9
   
  6
7  
   
  6
78 
2 1
   
  6
 8 
f 4
1  
  6
7 9
   
  6
7  
1  
   
  9
2
   
 56
78 
3
   
 5 
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
8
1  
 5 
7  
9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
   
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
  9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid21 → grid22: b8 guess 4 ∈ {4|5}

pending={b8}

deduce.grid22: naked-singles

deduce.grid22: hidden-singles

deduce.grid22.rowe. e4 is 4 by hidden-single.

pending={e4}

deduce.grid22: naked-singles

deduce.grid22: hidden-singles

deduce.grid22.rowe. e1 is 9 by hidden-single.

pending={e1}

deduce.grid22: naked-singles

grid22 didn't work: naked-singles ran out of candidates.

…backtrack.grid21 again

backtrack.grid21 → grid23: b8 guess 5 ∈ {4|5}

pending={b8}

deduce.grid23: naked-singles

grid23 didn't work: naked-singles ran out of candidates.

…backtrack.grid21 again

grid21 didn't work: exhaustive search revealed no solution.

…backtrack.grid17 again

grid17 didn't work: exhaustive search revealed no solution.

…backtrack.grid16 again

backtrack.grid16 → grid24: b1 guess 9 ∈ {7|9}

pending={b1}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowe. e4 is 9 by hidden-single.

pending={e4}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowd. d8 is 9 by hidden-single.

pending={d8}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowh. h6 is 5 by hidden-single.

pending={h6}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowf. f8 is 5 by hidden-single.

pending={f8}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowb. b7 is 5 by hidden-single.

pending={b7}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowb. b9 is 1 by hidden-single.

pending={b9}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowd. d5 is 5 by hidden-single.

pending={d5}

deduce.grid24: naked-singles

deduce.grid24: hidden-singles

deduce.grid24.rowe. e6 is 4 by hidden-single.

pending={e6}

deduce.grid24: naked-singles

grid24 didn't work: naked-singles ran out of candidates.

…backtrack.grid16 again

grid16 didn't work: exhaustive search revealed no solution.

…backtrack.grid15 again

backtrack.grid15 → grid25: a4 guess 8 ∈ {5|8}

pending={a4}

deduce.grid25: naked-singles

deduce.grid25: hidden-singles

deduce.grid25.rowg. g5 is 8 by hidden-single.

pending={g5}

deduce.grid25: naked-singles

deduce.grid25: hidden-singles

deduce.grid25: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, g4 {1|5}, e5 {6|7}, c6 {4|6}, d5 {1|6}, b4 {4|6}, b3 {7|9}, f9 {6|8}, g3 {5|7}, c8 {4|6}, b1 {7|9}, h7 {1|7}, i6 {6|7}.

Naked-pair {7|9} in cells {b1, b3} contained within {rowb, box1}, updating cells {b4, b7, b8, b9}:

grid25
1 2 3 4 5 6 7 8 9
a 6 2 4 8 5 1 9 7 3
b
   
   
7 9
8
   
   
7 9
   
4 6
   
3 2
1  
45 
   
   
456
   
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
456
  9
1  
  6
   
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5 3
   
4 6
  9
   
  6
7  
   
4 6
78 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
  9
2
   
 56
78 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
1  
 5 
   
8 9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
 56
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid25 → grid26: b1 guess 7 ∈ {7|9}

pending={b1}

deduce.grid26: naked-singles

deduce.grid26: hidden-singles

deduce.grid26: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, g4 {1|5}, c6 {4|6}, d5 {1|6}, c8 {4|6}, e5 {6|7}, f3 {6|7}, f9 {6|8}, g3 {5|7}, b4 {4|6}, e1 {8|9}, h7 {1|7}, i1 {1|9}, i6 {6|7}.

grid26
1 2 3 4 5 6 7 8 9
a 6 2 4 8 5 1 9 7 3
b 7 8 9
   
4 6
   
3 2
1  
45 
   
   
456
   
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
456
  9
1  
  6
   
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
 89
5 3
   
4 6
  9
   
  6
7  
   
4 6
78 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7  
1  
 56
  9
2
   
 56
78 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
1  
 5 
   
8 9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
 56
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
  9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid26 → grid27: b4 guess 4 ∈ {4|6}

pending={b4}

deduce.grid27: naked-singles

deduce.grid27: hidden-singles

deduce.grid27.rowe. e5 is 7 by hidden-single.

pending={e5}

deduce.grid27: naked-singles

deduce.grid27: hidden-singles

deduce.grid27.col7. h7 is 7 by hidden-single.

pending={h7}

deduce.grid27: naked-singles

deduce.grid27: hidden-singles

deduce.grid27: naked-pairs

two's heap=g9 {1|4}, i7 {1|4}, b7 {1|5}, d7 {4|5}, h6 {3|5}, b9 {1|6}, g4 {1|5}, b8 {5|6}, i5 {1|6}, d5 {1|6}, f9 {6|8}, e1 {8|9}, g3 {5|7}, e4 {6|9}, h2 {1|6}, e6 {4|8}, h3 {5|6}, i1 {1|9}, f3 {6|7}, f6 {5|8}.

grid27
1 2 3 4 5 6 7 8 9
a 6 2 4 8 5 1 9 7 3
b 7 8 9 4 3 2
1  
 5 
   
   
 56
   
1  
  6
   
c 5 3 1 7 9 6 8 4 2
d
1  
   
 89
1  
  6
  9
2
1 3
 56
  9
1  
  6
   
  3
45 
 8 
   
45 
   
   
 56
  9
7
e
   
   
 89
5 3
   
  6
  9
7
   
4  
 8 
2 1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
7  
1  
 56
  9
2
   
 5 
 8 
3
   
 56
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
1  
 5 
   
8 9 6 2
1  
4  
   
h 2
1  
  6
   
   
 56
   
1 3
 56
   
4
  3
 5 
   
7 8 9
i
1  
   
  9
1  
4 6
  9
8 2
1  
  6
   
7
1  
4  
   
3 5

backtrack.grid27 → grid28: b7 guess 1 ∈ {1|5}

pending={b7}

deduce.grid28: naked-singles

grid28 didn't work: naked-singles ran out of candidates.

…backtrack.grid27 again

backtrack.grid27 → grid29: b7 guess 5 ∈ {1|5}

pending={b7}

deduce.grid29: naked-singles

grid29 didn't work: naked-singles ran out of candidates.

…backtrack.grid27 again

grid27 didn't work: exhaustive search revealed no solution.

…backtrack.grid26 again

backtrack.grid26 → grid30: b4 guess 6 ∈ {4|6}

pending={b4}

deduce.grid30: naked-singles

deduce.grid30: hidden-singles

deduce.grid30: naked-pairs

two's heap=b9 {1|4}, b8 {4|5}, g9 {1|4}, d7 {4|5}, g3 {5|7}, g4 {1|5}, h7 {1|7}, f3 {6|7}, f8 {5|9}, e1 {8|9}, f9 {6|8}, e4 {4|9}, d5 {1|6}, e5 {6|7}, i1 {1|9}, i6 {6|7}.

Naked-pair {1|4} in cells {b9, g9} contained within {col9}, updating cells {e9, f9}:

grid30
1 2 3 4 5 6 7 8 9
a 6 2 4 8 5 1 9 7 3
b 7 8 9 6 3 2
1  
45 
   
   
45 
   
1  
4  
   
c 5 3 1 7 9 4 8 6 2
d
1  
   
 89
1  
  6
  9
2
1 3
45 
  9
1  
  6
   
  3
 56
 8 
   
45 
   
   
45 
  9
7
e
   
   
 89
5 3
   
4  
  9
   
  6
7  
   
  6
78 
2 1
   
  6
 8 
f 4
1  
  6
7 9
   
  6
7  
1  
 5 
  9
2
   
 56
78 
3
   
 5 
  9
   
  6
 8 
g 3
1  
4  
7  
   
 5 
7  
1  
 5 
   
8 9 6 2
1  
4  
   
h 2
1  
  6
7  
   
 56
7  
1 3
 5 
   
4
  3
 56
7  
1  
   
7  
8 9
i
1  
   
  9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid30 → grid31: b8 guess 4 ∈ {4|5}

pending={b8}

deduce.grid31: naked-singles

deduce.grid31: hidden-singles

deduce.grid31.rowe. e4 is 4 by hidden-single.

pending={e4}

deduce.grid31: naked-singles

deduce.grid31: hidden-singles

deduce.grid31.rowe. e1 is 9 by hidden-single.

pending={e1}

deduce.grid31: naked-singles

grid31 didn't work: naked-singles ran out of candidates.

…backtrack.grid30 again

backtrack.grid30 → grid32: b8 guess 5 ∈ {4|5}

pending={b8}

deduce.grid32: naked-singles

deduce.grid32: hidden-singles

deduce.grid32.rowe. e4 is 4 by hidden-single.

pending={e4}

deduce.grid32: naked-singles

deduce.grid32: hidden-singles

deduce.grid32.rowe. e1 is 9 by hidden-single.

pending={e1}

deduce.grid32: naked-singles

deduce.grid32: hidden-singles

deduce.grid32.rowd. d4 is 9 by hidden-single.

pending={d4}

deduce.grid32: naked-singles

deduce.grid32: hidden-singles

deduce.grid32.rowd. d6 is 3 by hidden-single.

pending={d6}

deduce.grid32: naked-singles

deduce.grid32: hidden-singles

deduce.grid32.rowh. h4 is 3 by hidden-single.

pending={h4}

deduce.grid32: naked-singles

deduce.grid32: hidden-singles

deduce.grid32.rowh. h7 is 1 by hidden-single.

pending={h7}

deduce.grid32: naked-singles

grid32 didn't work: naked-singles ran out of candidates.

…backtrack.grid30 again

grid30 didn't work: exhaustive search revealed no solution.

…backtrack.grid26 again

grid26 didn't work: exhaustive search revealed no solution.

…backtrack.grid25 again

backtrack.grid25 → grid33: b1 guess 9 ∈ {7|9}

pending={b1}

deduce.grid33: naked-singles

grid33 didn't work: naked-singles ran out of candidates.

…backtrack.grid25 again

grid25 didn't work: exhaustive search revealed no solution.

…backtrack.grid15 again

grid15 didn't work: exhaustive search revealed no solution.

…backtrack.grid14 again

backtrack.grid14 → grid34: a2 guess 7 ∈ {2|7}

pending={a2}

deduce.grid34: naked-singles

deduce.grid34: hidden-singles

deduce.grid34.rowg. g5 is 8 by hidden-single.

pending={g5}

deduce.grid34: naked-singles

deduce.grid34: hidden-singles

deduce.grid34.col7. d7 is 5 by hidden-single.

pending={d7}

deduce.grid34: naked-singles

deduce.grid34: hidden-singles

deduce.grid34.col5. f5 is 5 by hidden-single.

pending={f5}

deduce.grid34: naked-singles

deduce.grid34: hidden-singles

deduce.grid34: naked-pairs

two's heap=g9 {1|4}, e7 {2|4}, c6 {4|6}, d5 {1|6}, g4 {1|5}, f3 {6|7}, f9 {6|8}, e5 {6|7}, g3 {5|7}, c8 {4|6}, h1 {1|7}, i6 {6|7}.

grid34
1 2 3 4 5 6 7 8 9
a 6 7 4 8 2 1 9 5 3
b 2 8 9
   
456
   
3
   
456
   
1  
4  
7  
   
4 6
7  
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
4 6
  9
1  
  6
   
  3
4 6
 8 
5
   
4 6
  9
7
e
   
   
789
5 3
   
4 6
  9
   
  6
7  
 2 
4 6
78 
 2 
4  
   
1
   
4 6
 8 
f 4
1  
  6
  9
   
  6
7  
1  
  6
  9
5
 2 
  6
78 
3
 2 
  6
  9
   
  6
 8 
g 3
12 
4  
   
   
 5 
7  
1  
 5 
   
8 9 6
 2 
4  
7  
1  
4  
   
h
1  
   
7  
12 
  6
   
   
 56
7  
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8 9
i
1  
   
7 9
1  
4 6
  9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid34 → grid35: c6 guess 4 ∈ {4|6}

pending={c6}

deduce.grid35: naked-singles

deduce.grid35: hidden-singles

deduce.grid35: naked-pairs

two's heap=b9 {1|4}, e7 {2|4}, g9 {1|4}, d5 {1|6}, b4 {5|6}, b8 {4|7}, g4 {1|5}, b6 {5|6}, f3 {6|7}, f8 {2|9}, f9 {6|8}, d8 {4|9}, g3 {5|7}, e5 {6|7}, h1 {1|7}, i6 {6|7}.

Naked-pair {1|4} in cells {b9, g9} contained within {col9}, updating cells {e9, f9}:

Naked-pair {5|6} in cells {b4, b6} contained within {rowb, box2}, updating cells {b7, b8, b9}:

grid35
1 2 3 4 5 6 7 8 9
a 6 7 4 8 2 1 9 5 3
b 2 8 9
   
 56
   
3
   
 56
   
1  
4  
7  
   
4  
7  
1  
4  
   
c 5 3 1 7 9 4 8 6 2
d
1  
   
 89
1  
  6
  9
2
1 3
4 6
  9
1  
  6
   
  3
  6
 8 
5
   
4  
  9
7
e
   
   
789
5 3
   
4 6
  9
   
  6
7  
 2 
  6
78 
 2 
4  
   
1
   
  6
 8 
f 4
1  
  6
  9
   
  6
7  
1  
  6
  9
5
 2 
  6
78 
3
 2 
   
  9
   
  6
 8 
g 3
12 
4  
   
   
 5 
7  
1  
 5 
   
8 9 6
 2 
4  
7  
1  
4  
   
h
1  
   
7  
12 
  6
   
   
 56
7  
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8 9
i
1  
   
7 9
1  
4 6
  9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid35 → grid36: b4 guess 5 ∈ {5|6}

pending={b4}

deduce.grid36: naked-singles

grid36 didn't work: naked-singles ran out of candidates.

…backtrack.grid35 again

backtrack.grid35 → grid37: b4 guess 6 ∈ {5|6}

pending={b4}

deduce.grid37: naked-singles

deduce.grid37: hidden-singles

deduce.grid37: naked-pairs

two's heap=b9 {1|4}, h1 {1|7}, g9 {1|4}, b8 {4|7}, f4 {1|9}, g3 {5|7}, e7 {2|4}, f3 {6|7}, e9 {6|8}, e4 {4|9}, f8 {2|9}, f9 {6|8}, e5 {6|7}, d5 {1|6}, g4 {1|5}, d8 {4|9}, i6 {6|7}.

Naked-pair {1|4} in cells {b9, g9} contained within {col9}, updating cells {e9, f9}:

Naked-pair {6|8} in cells {e9, f9} contained within {col9, box6}, updating cells {b9, d8, e7, f8, g9}:

grid37
1 2 3 4 5 6 7 8 9
a 6 7 4 8 2 1 9 5 3
b 2 8 9 6 3 5
1  
4  
7  
   
4  
7  
1  
4  
   
c 5 3 1 7 9 4 8 6 2
d
1  
   
 89
1  
  6
  9
2
1 3
4  
  9
1  
  6
   
  3
  6
 8 
5
   
4  
  9
7
e
   
   
789
5 3
   
4  
  9
   
  6
7  
 2 
  6
78 
 2 
4  
   
1
   
  6
 8 
f 4
1  
  6
  9
   
  6
7  
1  
   
  9
5
 2 
  6
78 
3
 2 
   
  9
   
  6
 8 
g 3
12 
4  
   
   
 5 
7  
1  
 5 
   
8 9 6
 2 
4  
7  
1  
4  
   
h
1  
   
7  
12 
  6
   
   
 56
7  
1 3
 5 
   
4
  3
  6
7  
12 
   
7  
8 9
i
1  
   
7 9
1  
4 6
  9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid37 → grid38: b8 guess 4 ∈ {4|7}

pending={b8}

deduce.grid38: naked-singles

grid38 didn't work: naked-singles ran out of candidates.

…backtrack.grid37 again

backtrack.grid37 → grid39: b8 guess 7 ∈ {4|7}

pending={b8}

deduce.grid39: naked-singles

deduce.grid39: hidden-singles

deduce.grid39.rowg. g3 is 7 by hidden-single.

pending={g3}

deduce.grid39: naked-singles

grid39 didn't work: naked-singles ran out of candidates.

…backtrack.grid37 again

grid37 didn't work: exhaustive search revealed no solution.

…backtrack.grid35 again

grid35 didn't work: exhaustive search revealed no solution.

…backtrack.grid34 again

backtrack.grid34 → grid40: c6 guess 6 ∈ {4|6}

pending={c6}

deduce.grid40: naked-singles

deduce.grid40: hidden-singles

deduce.grid40.rowf. f3 is 7 by hidden-single.

pending={f3}

deduce.grid40: naked-singles

grid40 didn't work: naked-singles ran out of candidates.

…backtrack.grid34 again

grid34 didn't work: exhaustive search revealed no solution.

…backtrack.grid14 again

grid14 didn't work: exhaustive search revealed no solution.

…backtrack.grid13 again

backtrack.grid13 → grid41: a3 guess 7 ∈ {4|7}

pending={a3}

deduce.grid41: naked-singles

deduce.grid41: hidden-singles

deduce.grid41: naked-pairs

two's heap=g9 {1|4}, e7 {2|4}, a2 {2|4}, a8 {4|5}, g3 {4|5}, d7 {4|5}, c8 {4|6}, b3 {4|9}, f3 {6|9}, f9 {6|8}, c6 {4|6}, b1 {2|9}, h3 {5|6}, i6 {6|7}.

grid41
1 2 3 4 5 6 7 8 9
a 6
 2 
4  
   
7
   
45 
 8 
 2 
 5 
 8 
1 9
   
45 
   
3
b
 2 
   
  9
8
   
4  
  9
   
456
   
3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 5 3 1 7 9
   
4 6
   
8
   
4 6
   
2
d
1  
   
 89
1  
  6
  9
2
1 3
456
 89
1  
 56
 8 
  3
456
 8 
   
45 
   
   
456
  9
7
e
   
   
789
5 3
   
4 6
 89
 2 
  6
78 
 2 
4 6
78 
 2 
4  
   
1
   
4 6
 8 
f 4
1  
  6
7 9
   
  6
  9
1  
 56
 89
12 
 56
78 
 2 
 56
78 
3
 2 
 56
  9
   
  6
 8 
g 3
12 
4  
7  
   
45 
   
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
   
7  
12 
  6
7  
   
 56
   
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8 9
i
1  
   
7 9
1  
4 6
7 9
8 2
1  
  6
7  
   
  6
7  
1  
4  
7  
3 5

backtrack.grid41 → grid42: a2 guess 2 ∈ {2|4}

pending={a2}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowb. b6 is 2 by hidden-single.

pending={b6}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowe. e4 is 9 by hidden-single.

pending={e4}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowd. d8 is 9 by hidden-single.

pending={d8}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowg. g8 is 2 by hidden-single.

pending={g8}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowf. f5 is 2 by hidden-single.

pending={f5}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowe. e7 is 2 by hidden-single.

pending={e7}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowh. h1 is 2 by hidden-single.

pending={h1}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowi. i2 is 9 by hidden-single.

pending={i2}

deduce.grid42: naked-singles

deduce.grid42: hidden-singles

deduce.grid42.rowi. i7 is 4 by hidden-single.

pending={i7}

deduce.grid42: naked-singles

grid42 didn't work: naked-singles ran out of candidates.

…backtrack.grid41 again

backtrack.grid41 → grid43: a2 guess 4 ∈ {2|4}

pending={a2}

deduce.grid43: naked-singles

deduce.grid43: hidden-singles

deduce.grid43.rowb. b6 is 5 by hidden-single.

deduce.grid43.rowb. b7 is 1 by hidden-single.

pending={b6, b7}

deduce.grid43: naked-singles

deduce.grid43: hidden-singles

deduce.grid43.rowb. b8 is 7 by hidden-single.

pending={b8}

deduce.grid43: naked-singles

grid43 didn't work: naked-singles ran out of candidates.

…backtrack.grid41 again

grid41 didn't work: exhaustive search revealed no solution.

…backtrack.grid13 again

grid13 didn't work: exhaustive search revealed no solution.

…backtrack.grid12 again

backtrack.grid12 → grid44: a9 guess 4 ∈ {3|4}

pending={a9}

deduce.grid44: naked-singles

deduce.grid44: hidden-singles

deduce.grid44.rowb. b7 is 1 by hidden-single.

pending={b7}

deduce.grid44: naked-singles

deduce.grid44: hidden-singles

deduce.grid44.rowi. i6 is 3 by hidden-single.

pending={i6}

deduce.grid44: naked-singles

deduce.grid44: hidden-singles

deduce.grid44.rowh. h9 is 3 by hidden-single.

pending={h9}

deduce.grid44: naked-singles

deduce.grid44: hidden-singles

deduce.grid44.col7. d7 is 5 by hidden-single.

pending={d7}

deduce.grid44: naked-singles

deduce.grid44: hidden-singles

deduce.grid44.box9. i8 is 9 by hidden-single.

pending={i8}

deduce.grid44: naked-singles

deduce.grid44: hidden-singles

deduce.grid44: naked-pairs

two's heap=e7 {2|4}, f8 {2|6}, i1 {1|7}, d8 {4|6}, c6 {4|6}, g4 {5|8}, h7 {2|7}, i7 {4|7}, b8 {5|7}, e9 {8|9}, c2 {4|9}, f9 {8|9}, c5 {6|9}, a8 {5|7}, a3 {3|7}, a4 {5|8}.

Naked-pair {5|7} in cells {a8, b8} contained within {col8, box3}, updating cells {d8, f8, g8}:

Naked-pair {5|8} in cells {a4, g4} contained within {col4}, updating cells {b4, d4, e4, f4, h4}:

Naked-pair {8|9} in cells {e9, f9} contained within {col9, box6}, updating cells {d8, e7, f8}:

grid44
1 2 3 4 5 6 7 8 9
a 6
 23
   
7  
  3
   
7  
   
 5 
 8 
 2 
 5 
 8 
1 9
   
 5 
7  
4
b
 2 
   
7 9
8
   
4  
7 9
   
4  
  9
3
 2 
45 
   
1
   
 5 
7  
6
c 5
   
4  
  9
1 7
   
  6
  9
   
4 6
   
8 3 2
d
1  
   
 89
1 3
  6
  9
2
1 3
4 6
  9
1  
  6
 89
   
4 6
 8 
5
   
4 6
   
7
e
   
   
789
5
  3
  6
7 9
  3
4 6
  9
 2 
  6
789
 2 
4 6
78 
 2 
4  
   
1
   
   
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
  6
  9
12 
 56
789
 2 
 56
78 
3
 2 
  6
   
   
   
 89
g 3
 2 
4  
7  
   
45 
7  
   
 5 
 8 
   
 5 
78 
9 6
 2 
4  
   
1
h
12 
   
7 9
12 
  6
7 9
   
 56
7 9
1  
  6
   
4
   
 56
7  
 2 
   
7  
8 3
i
1  
   
7  
1  
4 6
7  
8 2
1  
  6
7  
3
   
4  
7  
9 5

backtrack.grid44 → grid45: a3 guess 3 ∈ {3|7}

pending={a3}

deduce.grid45: naked-singles

deduce.grid45: hidden-singles

deduce.grid45.rowe. e4 is 3 by hidden-single.

pending={e4}

deduce.grid45: naked-singles

deduce.grid45: hidden-singles

deduce.grid45.rowd. d2 is 3 by hidden-single.

pending={d2}

deduce.grid45: naked-singles

deduce.grid45: hidden-singles

deduce.grid45: naked-pairs

two's heap=e7 {2|4}, h4 {1|6}, g8 {2|4}, c6 {4|6}, d8 {4|6}, a8 {5|7}, f8 {2|6}, a2 {2|7}, i1 {1|7}, a4 {5|8}, e9 {8|9}, c2 {4|9}, f9 {8|9}, c5 {6|9}, g4 {5|8}, b4 {4|9}, h7 {2|7}, b8 {5|7}, i7 {4|7}.

Naked-pair {5|7} in cells {a8, b8} contained within {col8, box3}, updating cells {d8, f8, g8}:

Naked-pair {5|8} in cells {a4, g4} contained within {col4}, updating cells {b4, d4, f4, h4}:

Naked-pair {8|9} in cells {e9, f9} contained within {col9, box6}, updating cells {d8, e7, f8}:

grid45
1 2 3 4 5 6 7 8 9
a 6
 2 
   
7  
3
   
 5 
 8 
 2 
 5 
 8 
1 9
   
 5 
7  
4
b
 2 
   
7 9
8
   
4  
7 9
   
4  
  9
3
 2 
45 
   
1
   
 5 
7  
6
c 5
   
4  
  9
1 7
   
  6
  9
   
4 6
   
8 3 2
d
1  
   
 89
3 2
1  
4 6
  9
1  
  6
 89
   
4 6
 8 
5
   
4 6
   
7
e
   
   
789
5
   
  6
7 9
3
 2 
  6
789
 2 
4 6
78 
 2 
4  
   
1
   
   
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
  6
  9
12 
 56
789
 2 
 56
78 
3
 2 
  6
   
   
   
 89
g 3
 2 
4  
7  
   
45 
7  
   
 5 
 8 
   
 5 
78 
9 6
 2 
4  
   
1
h
12 
   
7 9
12 
  6
7 9
   
 56
7 9
1  
  6
   
4
   
 56
7  
 2 
   
7  
8 3
i
1  
   
7  
1  
4 6
7  
8 2
1  
  6
7  
3
   
4  
7  
9 5

backtrack.grid45 → grid46: a2 guess 2 ∈ {2|7}

pending={a2}

deduce.grid46: naked-singles

deduce.grid46: hidden-singles

deduce.grid46.rowa. a8 is 7 by hidden-single.

pending={a8}

deduce.grid46: naked-singles

deduce.grid46: hidden-singles

deduce.grid46.rowb. b6 is 2 by hidden-single.

pending={b6}

deduce.grid46: naked-singles

deduce.grid46: hidden-singles

deduce.grid46.rowg. g8 is 2 by hidden-single.

pending={g8}

deduce.grid46: naked-singles

deduce.grid46: hidden-singles

deduce.grid46.rowe. e6 is 4 by hidden-single.

pending={e6}

deduce.grid46: naked-singles

grid46 didn't work: naked-singles ran out of candidates.

…backtrack.grid45 again

backtrack.grid45 → grid47: a2 guess 7 ∈ {2|7}

pending={a2}

deduce.grid47: naked-singles

deduce.grid47: hidden-singles

deduce.grid47.rowb. b1 is 2 by hidden-single.

deduce.grid47.rowb. b6 is 5 by hidden-single.

pending={b1, b6}

deduce.grid47: naked-singles

deduce.grid47: hidden-singles

deduce.grid47.rowf. f5 is 5 by hidden-single.

pending={f5}

deduce.grid47: naked-singles

deduce.grid47: hidden-singles

deduce.grid47.rowg. g5 is 8 by hidden-single.

pending={g5}

deduce.grid47: naked-singles

deduce.grid47: hidden-singles

deduce.grid47.rowg. g3 is 7 by hidden-single.

pending={g3}

deduce.grid47: naked-singles

deduce.grid47: hidden-singles

deduce.grid47.rowf. f6 is 7 by hidden-single.

pending={f6}

deduce.grid47: naked-singles

grid47 didn't work: naked-singles ran out of candidates.

…backtrack.grid45 again

grid45 didn't work: exhaustive search revealed no solution.

…backtrack.grid44 again

backtrack.grid44 → grid48: a3 guess 7 ∈ {3|7}

pending={a3}

deduce.grid48: naked-singles

grid48 didn't work: naked-singles ran out of candidates.

…backtrack.grid44 again

grid44 didn't work: exhaustive search revealed no solution.

…backtrack.grid12 again

grid12 didn't work: exhaustive search revealed no solution.

…backtrack.grid2 again

grid2 didn't work: exhaustive search revealed no solution.

…backtrack.grid1 again

backtrack.grid1 → grid49: c1 guess 9 ∈ {5|9}

pending={c1}

deduce.grid49: naked-singles

deduce.grid49: hidden-singles

deduce.grid49.rowb. b4 is 9 by hidden-single.

pending={b4}

deduce.grid49: naked-singles

deduce.grid49: hidden-singles

deduce.grid49: naked-pairs

two's heap=g9 {1|4}, c2 {3|4}, e1 {7|8}, d1 {1|8}, i1 {1|7}.

grid49
1 2 3 4 5 6 7 8 9
a 6
 23
4  
7  
  3
45 
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b
 2 
 5 
7  
8
   
45 
7  
9 3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 9
  3
4  
   
1 7
   
 56
 8 
   
456
 8 
   
45 
 8 
  3
456
   
2
d
1  
   
 8 
1 3
  6
  9
2
1 3
456
 8 
1  
 56
 89
  3
456
 8 
   
45 
 8 
   
456
  9
7
e
   
   
78 
5
  3
  6
7 9
  3
4 6
 8 
 2 
  6
789
 23
4 6
78 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 8 
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
12 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
 5 
7  
12 
  6
7 9
   
 56
7 9
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8
1 3
   
  9
i
1  
   
7  
1  
4 6
7 9
8 2
1  
  6
7  
  3
  6
7  
1  
4  
7  
  3
4  
7 9
5

backtrack.grid49 → grid50: c2 guess 3 ∈ {3|4}

pending={c2}

deduce.grid50: naked-singles

deduce.grid50: hidden-singles

deduce.grid50.col3. e3 is 3 by hidden-single.

pending={e3}

deduce.grid50: naked-singles

deduce.grid50: hidden-singles

deduce.grid50: naked-pairs

two's heap=g9 {1|4}, i1 {1|7}, d1 {1|8}, e1 {7|8}.

grid50
1 2 3 4 5 6 7 8 9
a 6
 2 
4  
7  
   
45 
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b
 2 
 5 
7  
8
   
45 
7  
9 3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
45 
 8 
   
456
   
2
d
1  
   
 8 
1  
  6
  9
2
1 3
456
 8 
1  
 56
 89
  3
456
 8 
   
45 
 8 
   
456
  9
7
e
   
   
78 
5 3
   
4 6
 8 
 2 
  6
789
 2 
4 6
78 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
7 9
   
  6
7 9
1  
 56
 8 
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
12 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
12 
 5 
7  
12 
  6
7 9
   
 56
7 9
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8
1 3
   
  9
i
1  
   
7  
1  
4 6
7 9
8 2
1  
  6
7  
  3
  6
7  
1  
4  
7  
  3
4  
7 9
5

backtrack.grid50 → grid51: d1 guess 1 ∈ {1|8}

pending={d1}

deduce.grid51: naked-singles

deduce.grid51: hidden-singles

deduce.grid51: naked-pairs

two's heap=g9 {1|4}, i7 {1|4}, e7 {2|4}, i5 {1|6}, b1 {2|5}, e4 {4|6}, h1 {2|5}, d2 {6|9}, i6 {3|6}, g3 {4|5}.

Naked-pair {1|4} in cells {g9, i7} contained within {box9}, updating cells {g8, h7, h9, i8}:

grid51
1 2 3 4 5 6 7 8 9
a 6
 2 
4  
7  
   
45 
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b
 2 
 5 
   
8
   
45 
7  
9 3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
45 
 8 
   
456
   
2
d 1
   
  6
  9
2
  3
456
 8 
   
 56
 89
  3
456
 8 
   
45 
 8 
   
456
  9
7
e 8 5 3
   
4 6
   
 2 
  6
7 9
 2 
4 6
7  
 2 
4  
   
1
   
4 6
  9
f 4
   
  6
7 9
   
  6
7 9
1  
 56
 8 
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
12 
4  
   
   
45 
   
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
   
7  
1  
4  
   
h
 2 
 5 
   
12 
  6
  9
   
 56
  9
1 3
 56
   
4
  3
 56
7  
 2 
   
7  
8
  3
   
  9
i 7
1  
4 6
  9
8 2
1  
  6
   
  3
  6
   
1  
4  
   
  3
   
  9
5

backtrack.grid51 → grid52: b1 guess 2 ∈ {2|5}

pending={b1}

deduce.grid52: naked-singles

grid52 didn't work: naked-singles ran out of candidates.

…backtrack.grid51 again

backtrack.grid51 → grid53: b1 guess 5 ∈ {2|5}

pending={b1}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowb. b6 is 2 by hidden-single.

pending={b6}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowa. a2 is 2 by hidden-single.

pending={a2}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowf. f5 is 2 by hidden-single.

pending={f5}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowe. e7 is 2 by hidden-single.

pending={e7}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowf. f4 is 1 by hidden-single.

pending={f4}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowg. g5 is 7 by hidden-single.

pending={g5}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowe. e6 is 7 by hidden-single.

pending={e6}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowg. g4 is 8 by hidden-single.

pending={g4}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowg. g3 is 5 by hidden-single.

pending={g3}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowh. h2 is 1 by hidden-single.

pending={h2}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.rowi. i5 is 1 by hidden-single.

pending={i5}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53.col2. f2 is 7 by hidden-single.

pending={f2}

deduce.grid53: naked-singles

deduce.grid53: hidden-singles

deduce.grid53: naked-pairs

two's heap=a4 {4|5}, b9 {4|6}, i6 {3|6}, e4 {4|6}, a3 {4|7}, c7 {5|8}, a5 {5|8}, d7 {5|8}, b3 {4|7}, e5 {6|9}, f3 {6|9}, h3 {6|9}, h9 {3|9}, i2 {6|9}, d2 {6|9}, i8 {3|9}.

Naked-pair {4|7} in cells {a3, b3} contained within {col3, box1}, updating cells {f3, h3}:

Naked-pair {6|9} in cells {d2, e5, f3, h3, i2} contained within {col2, col3, box4, box7}, updating cells {a3, b3}:

grid53
1 2 3 4 5 6 7 8 9
a 6 2
   
4  
7  
   
45 
   
   
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b 5 8
   
4  
7  
9 3 2 1
   
4 6
7  
   
4 6
   
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
 5 
 8 
   
456
   
2
d 1
   
  6
  9
2
  3
456
   
   
 56
 89
  3
456
 8 
   
 5 
 8 
   
456
  9
7
e 8 5 3
   
4 6
   
   
  6
  9
7 2 1
   
4 6
  9
f 4 7
   
  6
  9
1 2
   
 56
 8 
3
   
 56
  9
   
  6
 89
g 3 4 5 8 7 9 6 2 1
h 2 1
   
  6
  9
  3
 56
   
4
  3
 56
   
7 8
  3
   
  9
i 7
   
  6
  9
8 2 1
  3
  6
   
4
  3
   
  9
5

backtrack.grid53 → grid54: a3 guess 4 ∈ {4|7}

pending={a3}

deduce.grid54: naked-singles

grid54 didn't work: naked-singles ran out of candidates.

…backtrack.grid53 again

backtrack.grid53 → grid55: a3 guess 7 ∈ {4|7}

pending={a3}

deduce.grid55: naked-singles

deduce.grid55: hidden-singles

deduce.grid55: naked-pairs

two's heap=a4 {4|5}, c8 {4|5}, i6 {3|6}, a5 {5|8}, d2 {6|9}, d7 {5|8}, e4 {4|6}, i8 {3|9}, e9 {4|9}, f3 {6|9}, f9 {8|9}, h3 {6|9}, h9 {3|9}, i2 {6|9}, c7 {5|8}, e5 {6|9}.

grid55
1 2 3 4 5 6 7 8 9
a 6 2 7
   
45 
   
   
 5 
 8 
1 9
  3
45 
   
  3
4  
 8 
b 5 8 4 9 3 2 1 7 6
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
 5 
 8 
   
45 
   
2
d 1
   
  6
  9
2
  3
456
   
   
 56
 89
  3
456
 8 
   
 5 
 8 
   
456
  9
7
e 8 5 3
   
4 6
   
   
  6
  9
7 2 1
   
4  
  9
f 4 7
   
  6
  9
1 2
   
 56
 8 
3
   
 56
  9
   
   
 89
g 3 4 5 8 7 9 6 2 1
h 2 1
   
  6
  9
  3
 56
   
4
  3
 56
   
7 8
  3
   
  9
i 7
   
  6
  9
8 2 1
  3
  6
   
4
  3
   
  9
5

backtrack.grid55 → grid56: a4 guess 4 ∈ {4|5}

pending={a4}

deduce.grid56: naked-singles

deduce.grid56: hidden-singles

deduce.grid56.rowc. c8 is 4 by hidden-single.

pending={c8}

deduce.grid56: naked-singles

deduce.grid56: hidden-singles

deduce.grid56.rowd. d6 is 4 by hidden-single.

pending={d6}

deduce.grid56: naked-singles

deduce.grid56: hidden-singles

deduce.grid56.rowd. d4 is 3 by hidden-single.

pending={d4}

deduce.grid56: naked-singles

deduce.grid56: hidden-singles

deduce.grid56.col5. c5 is 6 by hidden-single.

pending={c5}

deduce.grid56: naked-singles

deduce.grid56: hidden-singles

deduce.grid56: naked-pairs

two's heap=a8 {3|5}, i6 {3|6}, h6 {3|6}, a5 {5|8}, c7 {5|8}, a9 {3|8}, d5 {5|8}, c6 {5|8}, f3 {6|9}, f6 {5|8}, f9 {8|9}, h3 {6|9}, d2 {6|9}, h9 {3|9}, i2 {6|9}, d7 {5|8}, i8 {3|9}.

Naked-pair {3|6} in cells {h6, i6} contained within {col6, box8}, updating cells {c6, f6}:

Naked-pair {5|8} in cells {a5, c6, c7, d5, d7, f6} contained within {rowc, rowd, col5, col6, col7, box2, box5}, updating cells {d2, d8, h6, i6}:

grid56
1 2 3 4 5 6 7 8 9
a 6 2 7 4
   
 5 
 8 
1 9
  3
 5 
   
  3
   
 8 
b 5 8 4 9 3 2 1 7 6
c 9 3 1 7 6
   
 5 
 8 
   
 5 
 8 
4 2
d 1
   
  6
  9
2 3
   
 5 
 8 
4
   
 5 
 8 
   
  6
  9
7
e 8 5 3 6 9 7 2 1 4
f 4 7
   
  6
  9
1 2
   
 5 
 8 
3
   
 56
  9
   
   
 89
g 3 4 5 8 7 9 6 2 1
h 2 1
   
  6
  9
5 4
  3
  6
   
7 8
  3
   
  9
i 7
   
  6
  9
8 2 1
  3
  6
   
4
  3
   
  9
5

backtrack.grid56 → grid57: a5 guess 5 ∈ {5|8}

pending={a5}

deduce.grid57: naked-singles

grid57 didn't work: naked-singles ran out of candidates.

…backtrack.grid56 again

backtrack.grid56 → grid58: a5 guess 8 ∈ {5|8}

pending={a5}

deduce.grid58: naked-singles

grid58 didn't work: naked-singles ran out of candidates.

…backtrack.grid56 again

grid56 didn't work: exhaustive search revealed no solution.

…backtrack.grid55 again

backtrack.grid55 → grid59: a4 guess 5 ∈ {4|5}

pending={a4}

deduce.grid59: naked-singles

grid59 didn't work: naked-singles ran out of candidates.

…backtrack.grid55 again

grid55 didn't work: exhaustive search revealed no solution.

…backtrack.grid53 again

grid53 didn't work: exhaustive search revealed no solution.

…backtrack.grid51 again

grid51 didn't work: exhaustive search revealed no solution.

…backtrack.grid50 again

backtrack.grid50 → grid60: d1 guess 8 ∈ {1|8}

pending={d1}

deduce.grid60: naked-singles

deduce.grid60: hidden-singles

deduce.grid60: naked-pairs

two's heap=g9 {1|4}, b1 {2|5}, i7 {4|7}, d7 {4|5}, h1 {2|5}, f3 {6|9}, i5 {6|7}.

grid60
1 2 3 4 5 6 7 8 9
a 6
 2 
4  
7  
   
45 
7  
   
45 
 8 
 2 
 5 
 8 
1 9
  3
45 
7  
  3
4  
 8 
b
 2 
 5 
   
8
   
45 
7  
9 3
 2 
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
45 
 8 
   
456
   
2
d 8
1  
  6
  9
2
1 3
456
   
1  
 56
  9
  3
456
   
   
45 
   
   
456
  9
7
e 7 5 3
   
4 6
 8 
 2 
  6
 89
 2 
4 6
 8 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
  9
   
  6
  9
1  
 56
 8 
12 
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
 2 
4  
7  
   
45 
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h
 2 
 5 
   
 2 
  6
7 9
   
 56
7 9
1 3
 56
   
4
  3
 56
7  
12 
   
7  
8
1 3
   
  9
i 1
   
4 6
7 9
8 2
   
  6
7  
  3
  6
7  
   
4  
7  
  3
4  
7 9
5

backtrack.grid60 → grid61: b1 guess 2 ∈ {2|5}

pending={b1}

deduce.grid61: naked-singles

deduce.grid61: hidden-singles

deduce.grid61.rowa. a5 is 2 by hidden-single.

pending={a5}

deduce.grid61: naked-singles

deduce.grid61: hidden-singles

deduce.grid61: naked-pairs

two's heap=g9 {1|4}, d7 {4|5}, i7 {4|7}, g3 {4|7}, a2 {4|7}, f3 {6|9}, i5 {6|7}.

grid61
1 2 3 4 5 6 7 8 9
a 6
   
4  
7  
   
45 
7  
   
45 
 8 
2 1 9
  3
45 
7  
  3
4  
 8 
b 2 8
   
45 
7  
9 3
   
456
   
1  
45 
7  
   
456
7  
1  
4 6
   
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
45 
 8 
   
456
   
2
d 8
1  
  6
  9
2
1 3
456
   
1  
 56
  9
  3
456
   
   
45 
   
   
456
  9
7
e 7 5 3
   
4 6
 8 
   
  6
 89
 2 
4 6
 8 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
  9
   
  6
  9
1  
 56
 8 
1  
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
 2 
4  
7  
   
4  
7  
1  
 5 
 8 
1  
 5 
78 
9 6
 2 
4  
7  
1  
4  
   
h 5
 2 
  6
7 9
   
  6
7 9
1 3
  6
   
4
  3
  6
7  
12 
   
7  
8
1 3
   
  9
i 1
   
4 6
7 9
8 2
   
  6
7  
  3
  6
7  
   
4  
7  
  3
4  
7 9
5

backtrack.grid61 → grid62: a2 guess 4 ∈ {4|7}

pending={a2}

deduce.grid62: naked-singles

deduce.grid62: hidden-singles

deduce.grid62.col3. g3 is 4 by hidden-single.

pending={g3}

deduce.grid62: naked-singles

deduce.grid62: hidden-singles

deduce.grid62.rowb. b7 is 1 by hidden-single.

pending={b7}

deduce.grid62: naked-singles

deduce.grid62: hidden-singles

deduce.grid62.rowh. h4 is 1 by hidden-single.

pending={h4}

deduce.grid62: naked-singles

deduce.grid62: hidden-singles

deduce.grid62.col4. d4 is 3 by hidden-single.

pending={d4}

deduce.grid62: naked-singles

deduce.grid62: hidden-singles

deduce.grid62.col4. e4 is 4 by hidden-single.

pending={e4}

deduce.grid62: naked-singles

deduce.grid62: hidden-singles

deduce.grid62.col4. f4 is 6 by hidden-single.

pending={f4}

deduce.grid62: naked-singles

grid62 didn't work: naked-singles ran out of candidates.

…backtrack.grid61 again

backtrack.grid61 → grid63: a2 guess 7 ∈ {4|7}

pending={a2}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63: naked-pairs

two's heap=g9 {1|4}, a3 {4|5}, g2 {2|4}, i7 {4|7}, b3 {4|5}, g3 {4|7}, d7 {4|5}, f3 {6|9}, i5 {6|7}.

Naked-pair {4|5} in cells {a3, b3, d7} contained within {col3, box1}, updating cells {f3, g3, h3}:

pending={g3}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63: naked-pairs

two's heap=g9 {1|4}, a3 {4|5}, g2 {2|4}, i5 {6|7}, b3 {4|5}, d7 {4|5}, g8 {2|4}, h3 {6|9}, f3 {6|9}, i7 {4|7}.

Naked-pair {2|4} in cells {g2, g8} contained within {rowg}, updating cells {g4, g5, g9}:

Naked-pair {4|5} in cells {a3, b3, d7} contained within {col3, box1}, updating cells {f3, h3}:

Naked-pair {6|9} in cells {f3, h3} contained within {col3}, updating cells {a3, b3}:

pending={g9}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63.rowb. b7 is 1 by hidden-single.

pending={b7}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63.rowb. b8 is 7 by hidden-single.

pending={b8}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63.rowh. h4 is 1 by hidden-single.

pending={h4}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63.col4. d4 is 3 by hidden-single.

pending={d4}

deduce.grid63: naked-singles

deduce.grid63: hidden-singles

deduce.grid63: naked-pairs

two's heap=g2 {2|4}, g8 {2|4}, a3 {4|5}, b3 {4|5}, h7 {2|7}, b9 {4|6}, i7 {4|7}, g5 {5|8}, d7 {4|5}, h3 {6|9}, f3 {6|9}, h9 {3|9}, i5 {6|7}, g4 {5|8}.

Naked-pair {2|4} in cells {g2, g8} contained within {rowg}, updating cells {g4, g5}:

Naked-pair {4|5} in cells {a3, b3, d7} contained within {col3, box1}, updating cells {f3, h3}:

Naked-pair {5|8} in cells {g4, g5} contained within {rowg, box8}, updating cells {g2, g8, h6, i5, i6}:

Naked-pair {6|9} in cells {f3, h3} contained within {col3}, updating cells {a3, b3}:

grid63
1 2 3 4 5 6 7 8 9
a 6 7
   
45 
   
   
45 
 8 
2 1 9
  3
45 
   
  3
4  
 8 
b 2 8
   
45 
   
9 3
   
456
   
1 7
   
4 6
   
c 9 3 1 7
   
 56
 8 
   
456
 8 
   
45 
 8 
   
456
   
2
d 8
1  
  6
  9
2 3
1  
 56
  9
   
456
   
   
45 
   
   
456
  9
7
e 7 5 3
   
4 6
 8 
   
  6
 89
 2 
4 6
 8 
 2 
4  
 8 
1
   
4 6
 89
f 4
1  
  6
  9
   
  6
  9
   
 56
 8 
1  
 56
789
 2 
 56
78 
3
 2 
 56
  9
   
  6
 89
g 3
 2 
4  
   
7
   
 5 
 8 
   
 5 
 8 
9 6
 2 
4  
   
1
h 5
 2 
  6
  9
   
  6
  9
1 4
  3
  6
7  
 2 
   
7  
8
  3
   
  9
i 1
   
4 6
  9
8 2
   
  6
7  
  3
  6
7  
   
4  
7  
  3
4  
  9
5

backtrack.grid63 → grid64: a3 guess 4 ∈ {4|5}

pending={a3}

deduce.grid64: naked-singles

deduce.grid64: hidden-singles

deduce.grid64.col4. e4 is 4 by hidden-single.

pending={e4}

deduce.grid64: naked-singles

deduce.grid64: hidden-singles

deduce.grid64.col4. f4 is 6 by hidden-single.

pending={f4}

deduce.grid64: naked-singles

grid64 didn't work: naked-singles ran out of candidates.

…backtrack.grid63 again

backtrack.grid63 → grid65: a3 guess 5 ∈ {4|5}

pending={a3}

deduce.grid65: naked-singles

deduce.grid65: hidden-singles

deduce.grid65: naked-pairs

two's heap=g2 {2|4}, a8 {3|4}, g8 {2|4}, c8 {4|5}, d6 {4|6}, d7 {4|5}, h7 {2|7}, i7 {4|7}, a4 {4|8}, g4 {5|8}, g5 {5|8}, c5 {6|8}, h3 {6|9}, f3 {6|9}, h9 {3|9}, f9 {8|9}, i5 {6|7}.

Naked-pair {2|4} in cells {g2, g8} contained within {rowg}, updating cells {g4, g5}:

Naked-pair {5|8} in cells {g4, g5} contained within {rowg, box8}, updating cells {g2, g8, h6, i5, i6}:

grid65
1 2 3 4 5 6 7 8 9
a 6 7 5
   
4  
 8 
2 1 9
  3
4  
   
  3
4  
 8 
b 2 8 4 9 3 5 1 7 6
c 9 3 1 7
   
  6
 8 
   
4 6
 8 
   
45 
 8 
   
45 
   
2
d 8
1  
  6
  9
2 3
1  
 56
  9
   
4 6
   
   
45 
   
   
456
  9
7
e 7 5 3
   
4 6
 8 
   
  6
 89
 2 
4 6
 8 
 2 
4  
 8 
1
   
4  
 89
f 4
1  
  6
  9
   
  6
  9
   
 56
 8 
1  
 56
789
 2 
  6
78 
3
 2 
 56
  9
   
   
 89
g 3
 2 
4  
   
7
   
 5 
 8 
   
 5 
 8 
9 6
 2 
4  
   
1
h 5
 2 
  6
  9
   
  6
  9
1 4
  3
  6
7  
 2 
   
7  
8
  3
   
  9
i 1
   
4 6
  9
8 2
   
  6
7  
  3
  6
7  
   
4  
7  
  3
4  
  9
5

backtrack.grid65 → grid66: a4 guess 4 ∈ {4|8}

pending={a4}

deduce.grid66: naked-singles

deduce.grid66. Solved.

grid66
1 2 3 4 5 6 7 8 9
a 6 7 5 4 2 1 9 3 8
b 2 8 4 9 3 5 1 7 6
c 9 3 1 7 8 6 4 5 2
d 8 9 2 3 1 4 5 6 7
e 7 5 3 6 9 2 8 1 4
f 4 1 6 5 7 8 3 2 9
g 3 2 7 8 5 9 6 4 1
h 5 6 9 1 4 7 2 8 3
i 1 4 8 2 6 3 7 9 5

grid66. Copying solution to raw grid.